next up previous contents index
Next: Utilisation de Linux Up: Conservatoire National des Arts Previous: Fonctionnalités de Linux   Contents   Index

Subsections

Arborescence d'un système Linux

Les informations données ici peuvent ne pas être correctes pour votre distribution. En effet, certaines distributions utilisent une structure légèrement différente. Les informations données ici sont conformes à la norme de hiérarchie de systèmes de fichiers version 2.0 (``FHS'' en anglais). Vous pouvez consulter ce document pour une description exhaustive du système de fichiers de Linux.

Systèmes de fichier

Principe

Il n'existe pas de norme d'organisation du système de fichiers, mais un standard est à peu près suivi par les différentes distributions de Linux. L'organisation traditionnelle du répertoire racine est décrite dans le tableau suivant (voir tableau 3.1, page [*]).


Table 3.1: Présentation rapide des principaux répertoires d'un système de fichier Linux

Répertoire contient
/bin les fichiers exécutables nécessaires à l'initialisation
/boot le noyau et les fichiers de démarrage
/dev les fichiers spéciaux
/etc les fichiers de configuration du système et certains scripts
/home la base des répertoires utilisateurs
/lib les librairies système et les modules
/lost+found le stockage des fichiers retrouvés par fsck
/mnt les points d'ancrage des systèmes extérieurs
/proc un système de fichiers virtuels permettant l'accès aux variables du noyau
/root le répertoire de base du super utilisateur
/sbin les fichiers exécutables pour l'administration du système
/tmp les fichiers temporaires
/usr les programmes, les librairies et les fichiers accessibles pour l'utilisateur
/var les données variables liées à la machine (spool, traces)


Le répertoire de base / s'appelle : répertoire racine (root) par analogie avec la racine d'un arbre représentant le système de fichiers. Il n'est pas standard d'ajouter des répertoires au niveau de la racine.

Ce système de fichiers peut résider sur différentes partitions, différents supports physiques ou sur d'autres machines sur le réseau. Ce découpage est complètement transparent pour les utilisateurs du système de fichiers. Les différentes parties peuvent être connectées au démarrage du système ou à la demande, en cours d'utilisation.

Présentation des principaux répertoires


/

Répertoire racine. Point de départ de toute la hiérarchie du système de fichiers. Le système de fichiers contenant ce répertoire est monté automatiquement par le noyau pendant l'amorçage du système. Ce système de fichiers est appelé système de fichiers racine (``root'' en anglais).


/boot/

Répertoire contenant le noyau3.1 de Linux et ses informations de symboles3.2. Ce répertoire est souvent le point de montage d'un système de fichiers de très petite taille, dédié au noyau. Dans ce cas, il est recommandé que le système de fichiers correspondant soit monté en lecture seule. On notera que sur certains systèmes, le noyau reste placé dans le répertoire racine. Cette technique n'est pas recommandée, car on ne peut pas monter en lecture seule la partition racine en utilisation normale du système.


/dev/

Répertoire contenant tous les fichiers spéciaux permettant d'accéder aux périphériques. Sous Linux, la plupart des périphériques sont accessibles au travers de fichiers spéciaux, grâce auxquels l'envoi et la réception des données vers les périphériques peuvent être réalisés de manière uniforme. Il existe un tel fichier pour chaque périphérique, et ils sont tous placés dans ce répertoire. Les distributions installent souvent dans ce répertoire les fichiers spéciaux pour la plupart des périphériques, même s'ils ne sont pas physiquement présents dans la machine. Dans ce cas, les opérations sur les fichiers spéciaux des périphériques non installés seront tout simplement refusées par le noyau. Une autre possibilité est d'utiliser un système de fichiers virtuels, géré directement par le noyau. Le répertoire /dev/ ne contient dans ce cas que les fichiers spéciaux des périphériques pour lesquels le noyau dispose d'un gestionnaire intégré ou chargé dynamiquement. Quelle que soit la technique utilisée, ce répertoire doit être impérativement placé dans le système de fichiers racine.

Exemples :


/sbin/

Répertoire contenant les commandes systèmes nécessaires à l'amorçage et réservées à l'administrateur. Ce répertoire doit être impérativement placé dans le système de fichiers racine. En général, seul l'administrateur utilise ces commandes.


/bin/

Répertoire contenant les commandes systèmes générales nécessaires à l'amorçage. Ce répertoire doit être impérativement placé dans le système de fichiers racine. Tous les utilisateurs peuvent utiliser les commandes de ce répertoire.


/lib/

Répertoire contenant les bibliothèques partagées (``DLL'' en anglais, pour ``Dynamic Link Library'') utilisées par les programmes du système.

/lib/modules contient les modules additionnels du noyau. Ces modules sont des composants logiciels du noyau, mais ne sont pas chargés immédiatement pendant l'amorçage. Ils peuvent en revanche être chargés et déchargés dynamiquement, lorsque le système est en fonctionnement. Il est fortement recommandé que ce répertoire soit placé dans le système de fichiers racine.


/etc/

Ce répertoire contient les fichiers de configuration du système. On trouve les sous-répertoires suivants :

X11
contient les fichiers de configuration de Xwindow,
rc.d
contient les scripts de démarrage du système,
cron
contient les tâches à effectuer à la périodicité donnée (daily, hourly, monthly, weekly),
skel
contient les fichiers à recopier dans le répertoire d'un nouvel utilisateur,
sysconfig
contient les fichiers de configuration des périphériques.

Le répertoire /etc/opt/ contient les fichiers de configuration des applications.


/tmp/

Répertoire permettant de stocker des données temporaires.


/usr/

Répertoire contenant les fichiers du système partageables en réseau et en lecture seule.

Le répertoire /usr contient de nombreux sous-répertoires. On retrouve presque la même organisation que sous la racine, mais le contenu est destiné aux utilisateurs plus qu'au système lui-même.

La structure de /usr est la suivante :

X11R6
contient la hiérarchie des fichiers Xwindow (version 11 révision 6),
bin
contient les commandes du système,
doc
contient les documentations en ligne,
etc
contient la configuration des commandes utilisateurs,
games
contient les (éventuels) jeux,
include
contient les fichiers de définition des librairies pour la programmation en C,
lib
contient les librairies non système,
local
contient la hiérarchie des fichiers propres à cette installation,
man
contient les fichiers des pages du manuel en ligne,
sbin
contient les commandes d'administration non nécessaires au démarrage,
share
contient les fichiers de configuration partagés,
src
contient les sources du système et des applications.

Xwindow est l'environnement graphique d'Unix. Il est très flexible et configurable et possède des fonctionnalités rarement vues dans d'autres environnements. On retrouve, dans ce répertoire, une hiérarchie de fichiers ressemblant à celle de la racine, mais dédiée à l'environnement Xwindow.

/usr/local doit contenir les outils installés en dehors du contexte de la distribution. On retrouve une hiérarchie complète semblable à /usr.

/usr/bin/ contient la plupart des commandes des utilisateurs.

/usr/sbin/ contient les commandes systèmes non nécessaires à l'amorçage. Ces commandes ne sont normalement utilisées que par l'administrateur système.

/usr/lib/ contient les bibliothèques partagées de tous les programmes de /usr/bin/ et /usr/sbin/ et les bibliothèques statiques pour la création de programmes.

/usr/include/ contient les fichiers d'en-têtes du système pour le compilateur C/C++. Les fichiers de ce répertoire sont utilisés pour réaliser des programmes dans les langages de programmation C et C++.

/usr/X11R6/ contient X11R6 et ses applications. Ce répertoire contient des sous-répertoires bin/, lib/ et include/, où se trouvent les exécutables de XWindow, les bibliothèques et les fichiers d'en-têtes pour créer des programmes pour XWindow en C et C++.

/usr/src/ contient les fichiers sources du noyau et des applications de la distribution. Normalement, ce répertoire ne doit contenir que le code source des applications dépendantes de la distribution que vous utilisez. Il est vivement recommandé de conserver les sources du noyau de Linux3.3 sur son disque, afin de pouvoir changer la configuration du système à tout moment.

/usr/local/ contient les programmes d'extension du système indépendants de la distribution. ``local'' ne signifie pas ici que les programmes qui se trouvent dans ce répertoire ne peuvent pas être partagés sur le réseau, mais plutôt que ce sont des extensions du système qu'on ne trouve donc que localement sur un site donné. Ce sont donc les extensions qui ne font pas partie de la distribution de Linux utilisée, et qui doivent être conservées lors des mises à jour ultérieures de cette distribution. Ce répertoire contient les sous-répertoires bin, lib, include et src, qui ont la même signification que les répertoires du même nom de /usr/.


/var/

Répertoire contenant toutes les données variables du système. Ce répertoire contient les données variables qui ne pouvaient pas être placées dans le répertoire /usr/, puisque celui-ci est normalement accessible en lecture seule.

/var/opt/ contient les données variables des applications.

/var/log/ contient les fichiers de trace de fonctionnement du système. Une grande partie du travail d'administration consiste à suivre les enregistrements afin de détecter les mauvais fonctionnements. Le programme logrotate permet de conserver un historique des fichiers. Il existe des outils de gestion des fichiers de trace pour permettre, entre autres, la détection des intrusions sur le système.

/var/spool/ contient les données en attente de traitement. Les travaux d'impression en cours, les mails et les fax en attente d'émission, les travaux programmés en attente d'exécution sont tous stockés dans ce répertoire. Le répertoire spool contient des sous-répertoires de gestion des spoolers d'impression (lpd), de courriers (mail), de forums (news), etc. Ces sous-répertoires peuvent contenir, momentanément, des fichiers de taille importante.

/var/locks/ contient les verrous sur les ressources système. Certaines ressources ne peuvent être utilisées que par une seule application (par exemple, un modem). Les applications qui utilisent de telles ressources le signalent en créant un fichier de verrou dans ce répertoire.

/var/cache/ contient les données de résultats intermédiaires des applications. Les applications qui doivent stocker des résultats intermédiaires doivent les placer dans ce répertoire.

./catman contient les fichiers d'aide mis en forme. Ce répertoire contient les pages de manuel mises en forme pour un accès plus rapide lors d'une deuxième utilisation.

./lib quelques fichiers de configuration ./lock les fichiers de verrous des applications ./run les fichiers contenant les "pid" des processus du système


/opt/

Répertoire contenant les applications. C'est dans ce répertoire que les applications qui ne font pas réellement partie du système doivent être installées. Les applications graphiques devraient être installées dans ce répertoire. C'est en particulier le cas des gestionnaires de bureau. Les seules applications graphiques considérées comme faisant partie du système sont les applications de X11, qui sont donc stockées dans /usr/X11R6/. Il est recommandé que ce répertoire soit placé sur un système de fichiers en lecture seule, et que les applications utilisent le répertoire /var/opt/ pour travailler.


/home/

Le répertoire /home contient les répertoires des utilisateurs disposant d'un compte sur la machine. Chaque utilisateur possède généralement son propre répertoire, mais il est possible de créer des structures de groupes de travail en organisant les sous-répertoires.

Il est bon de placer ce répertoire dans un système de fichiers indépendant de ceux utilisés par le système, afin d'éviter que sa saturation ne perturbe le fonctionnement du système complet.


/root/

Répertoire contenant le répertoire personnel de l'administrateur. Il est donc recommandé que le répertoire personnel de l'administrateur soit placé en dehors de /home/ pour éviter qu'un problème sur le système de fichiers des utilisateurs ne l'empêche de travailler.


/mnt/

Répertoire réservé au montage des systèmes de fichiers non-permanents (CD-ROM, disquettes, etc.). Ce répertoire peut contenir plusieurs sous-répertoires pour chaque périphérique amovible, afin de permettre d'en monter plusieurs simultanément. Notez qu'il est assez courant de disposer de liens symboliques dans la racine référençant les principaux systèmes de fichiers, afin d'en simplifier l'accès. Par exemple, il est courant d'avoir un répertoire /floppy/ référençant le lecteur de disquette et un répertoire /cdrom/ référençant le lecteur de CD-ROM.


/proc/

Répertoire contenant le pseudo système de fichiers du noyau. Ce pseudo système de fichiers contient des fichiers permettant d'accéder aux informations sur le matériel, la configuration du noyau et sur les processus en cours d'exécution.

Montage de systèmes de fichier

Principe

Nous avons vu que la hiérarchie des fichiers de Linux était mono-tête, c'est à dire qu'il partait d'un racine unique, contrairement à Windows qui présente une racine par système de fichier (une pour chaque partition du disque dur, pour la disquette, le CD-ROM, les lecteurs réseaux... ).

Tout fichier accessible par un système Unix est inséré dans une grande arborescence, la hiérarchie des fichiers, commençant à la racine /. Les fichiers de cette arborescence peuvent résider sur différents périphériques et ce, de façon transparente pour l'utilisateur.

Ainsi, pour pouvoir exploiter plusieurs systèmes de fichier différents, nous devons rattacher ces derniers à l'arborescence des fichiers du système. Cette opération s'appelle le montage de systèmes de fichiers. Elle permet de rattacher la racine d'un système de fichier à un emplacement de l'arborescence des fichiers du système, nommé ``point de montage''.


La commande mount

La commande mount permet d'attacher un système de fichiers trouvé sur un périphérique quelconque à l'arborescence des fichiers du système. A l'inverse umount le détachera à nouveau. La syntaxe de cette commande est la suivante :

Où :


Le fichier /etc/fstab

Nous avons vu comment utiliser monter des systèmes de fichiers à l'aide de la commande mount mais il est évident qu'il serait fastidieux de recourir systématiquement à cette commande pour monter les systèmes de fichiers utilisés couramment.

Le fichier /etc/fstab, contient des lignes décrivant les systèmes de fichiers habituellement montés, leurs répertoires, et leurs options. Ce fichier est utilisé dans trois buts :

Figure 3.1: Exemple de fichier fstab
\begin{figure}\begin{center}
\begin{verbatim}cd /usr/src
rm linux
mkdir linux-...
...2.4.17 linux
tar xvfz linux-2.4.17.tar.gz\end{verbatim} \end{center}\end{figure}


next up previous contents index
Next: Utilisation de Linux Up: Conservatoire National des Arts Previous: Fonctionnalités de Linux   Contents   Index

Document rédigé par Rémi LEBLOND (remi.leblond@free.fr)